/*
 * Copyright (c) 2008, University of Aarhus.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * - Redistributions of source code must retain the above copyright notice,
 *   this list of conditions and the following disclaimer.
 * - Redistributions in binary form must reproduce the above copyright
 *   notice, this list of conditions and the following disclaimer in the
 *   documentation and/or other materials provided with the distribution.
 * - Neither the name of the Univeristy of Aarhus nor the names
 *   of its contributors may be used to endorse or promote products derived
 *   from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * @author: Morten Tranberg Hansen <mth@cs.au.dk>
 * @date:   May 8 2008	
 * 
 */

package dk.sensobyg.basestation;

import java.io.Serializable;

/**
 * This class represents a command that can be issued to a network. 
 * The only valid command at this point is the one used for setting the network wide
 * temperature sampling interval.
 * @see dk.sensobyg.basestation.Types#COMMAND_TYPE_TEMPERATURE COMMAND_TYPE_TEMPERATURE
 * @author morten
 *
 */
@Deprecated
public class Command implements Serializable {
	
	private static final long serialVersionUID = 5137372111054873586L;

	protected int target;
	protected short type;
	protected long interval;	
	
/*	public Command(short type) {
		this.type = type;
		this.interval = 0;
		this.target = MoteIF.TOS_BCAST_ADDR;
	}*/
	
	public Command(short type, long interval) {
		this.type = type;
		this.interval = interval;
		this.target = Constants.BROADCAST_ADDR;
	}
	
	/*public Command(short type, long interval, int target) {
		this.type = type;
		this.interval = interval;
		this.target = target;
	}*/
	
	public int getTarget() {
		return target;
	}
	
	public short getType() {
		return type;
	}
	
	public long getInterval() {
		return interval;
	}
	
	public boolean equals(Object o) {
		if(o==null) return false;
		if(o.getClass()!=this.getClass()) return false;
		Command other = (Command) o;
		return other.target==this.target && other.type==this.type && other.interval==this.interval;
	}
	
	public String toString() {
		return "| " + target + " | " + type + " | " + interval + " |"; 
	}
	
	
}
